/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controlador.Service.Ventas;

import Controlador.Bean.Ventas.Departamento;
import Controlador.Bean.Ventas.Distrito;
import Controlador.Bean.Ventas.Provincia;
import Data.config.SessionFac;
import java.util.ArrayList;
import java.util.List;
import org.apache.ibatis.session.SqlSession;

/**
 *
 * @author Luis Enrique
 */
public class ServicioUbigeo {
    
    private ServicioUbigeo() {};
    
    static private ServicioUbigeo servicioUbigeo=null; 
		   
    public static ServicioUbigeo getInstance(){    
        if(servicioUbigeo==null) servicioUbigeo= new ServicioUbigeo();
        return servicioUbigeo;
    }
    
    //UBIGEO    
    public ArrayList<Departamento> getDepartamentos(){
        ArrayList<Departamento> departamentos;
        try (SqlSession sqlsesion=SessionFac.SessionFactory().openSession()){
            List<Departamento> temp= (List)sqlsesion.selectList("Data.Ventas.ServicioUbigeo.getDepartamentos");			
            departamentos= new ArrayList(temp);
            sqlsesion.close();
        }
        return departamentos;
    }
    
    public String getIdDepartamento(String idProvincia){
        String provincia;
        try(SqlSession sqlsesion=SessionFac.SessionFactory().openSession()){
            provincia = sqlsesion.selectOne("Data.Ventas.ServicioUbigeo.getDept",idProvincia);			
            sqlsesion.close();
        }
        return provincia;
    }

    public ArrayList<Provincia> getProvincias (String idDepartamento){
        ArrayList<Provincia> provincias;
        try(SqlSession sqlsesion=SessionFac.SessionFactory().openSession()){
            List<Provincia> temp=sqlsesion.selectList("Data.Ventas.ServicioUbigeo.getProvincias",idDepartamento);			
            provincias= new ArrayList(temp);
            sqlsesion.close();
        }
        return provincias;
    }

    public String getIdProvincia(String idDistrito){
        String distrito;
        try(SqlSession sqlsesion=SessionFac.SessionFactory().openSession()){
            distrito = sqlsesion.selectOne("Data.Ventas.ServicioUbigeo.getProv",idDistrito);			
            sqlsesion.close();
        }
        return distrito;
    }
    
    public ArrayList<Distrito> getDistritos (String idProvincia){
        ArrayList<Distrito> distritos;
        try(SqlSession sqlsesion=SessionFac.SessionFactory().openSession()){
            List<Distrito> temp=sqlsesion.selectList("Data.Ventas.ServicioUbigeo.getDistritos",idProvincia);			
            distritos= new ArrayList(temp);
            sqlsesion.close();
        }
        return distritos;
    }
    //FIN UBIGEO
}
